Page({
    data: {
      posts: [], // 帖子列表数据
      isLoading: false, // 是否加载中
      isRefreshing: false, // 是否刷新中
    },
  
    onLoad() {
      // 页面加载时获取帖子数据
      this.loadPosts();
    },
  
    // 加载帖子数据（模拟）
    loadPosts() {
      this.setData({ isLoading: true });
  
      // 模拟网络请求延迟
      setTimeout(() => {
        // 生成模拟数据（按时间倒序排列）
        const mockPosts = [
          {
            id: 1,
            avatar: '/images/avatar1.png',
            username: '张同学',
            time: this.formatTime(new Date()), // 刚刚发布
            title: '寻物：黑色笔记本电脑',
            desc: '今天下午在图书馆三楼丢失一台黑色笔记本电脑，外壳有轻微划痕，里面有重要资料，捡到的同学请联系我，必有重谢！',
            imgUrl: '/images/laptop.png',
            type: 'lost', // 寻物
            location: '图书馆三楼'
          },
          {
            id: 5,
            avatar: '/images/avatar2.png',
            username: '李同学',
            time: this.formatTime(new Date(Date.now() - 3600000)), // 1小时前
            title: '招领：蓝色雨伞',
            desc: '在教学楼A栋门口捡到一把蓝色雨伞，伞柄有卡通图案，请失主联系我认领。',
            imgUrl: '/images/umbrella.jpg',
            type: 'found', // 招领
            location: '教学楼A栋'
          },
          {
            id: 2,
            avatar: '/images/avatar3.png',
            username: '王同学',
            time: this.formatTime(new Date(Date.now() - 86400000)), // 1天前
            title: '寻物：校园卡',
            desc: '昨天在食堂二楼丢失校园卡，姓名王某某，学号2022xxxx，捡到的同学麻烦联系我，谢谢！',
            imgUrl: '/images/card.png',
            type: 'lost',
            location: '食堂二楼'
          }
        ];
  
        this.setData({
          posts: mockPosts,
          isLoading: false
        });
      }, 1000);
    },
  
    // 刷新帖子（按最近发布时间更新）
    refreshPosts() {
      this.setData({ isRefreshing: true });
  
      // 模拟刷新请求
      setTimeout(() => {
        // 在现有数据前添加一条新的帖子（模拟最新发布）
        const newPost = {
          id: Date.now(), // 用时间戳作为唯一ID
          avatar: '/images/avatar4.png',
          username: '赵同学',
          time: this.formatTime(new Date()), // 刚刚发布
          title: '招领：红色钱包',
          desc: '在操场捡到一个红色钱包，里面有少量现金和身份证，失主请联系我核对信息认领。',
          imgUrl: '/images/wallet.jpg',
          type: 'found',
          location: '操场'
        };
  
        this.setData({
          posts: [newPost, ...this.data.posts], // 新帖子放在最前面
          isRefreshing: false
        });
  
        wx.showToast({
          title: '已更新至最新',
          icon: 'none',
          duration: 1500
        });
      }, 1000);
    },
    
    // 格式化时间显示（刚刚、x小时前、x天前）
    formatTime(date) {
      const now = new Date();
      const diff = now - date; // 时间差（毫秒）
      const seconds = Math.floor(diff / 1000);
      const minutes = Math.floor(seconds / 60);
      const hours = Math.floor(minutes / 60);
      const days = Math.floor(hours / 24);
  
      if (seconds < 60) {
        return '刚刚';
      } else if (minutes < 60) {
        return `${minutes}分钟前`;
      } else if (hours < 24) {
        return `${hours}小时前`;
      } else if (days < 30) {
        return `${days}天前`;
      } else {
        // 超过30天显示具体日期
        return `${date.getFullYear()}-${(date.getMonth() + 1).toString().padStart(2, '0')}-${date.getDate().toString().padStart(2, '0')}`;
      }
    },
     // 点击帖子跳转到详情页
     viewPostDetail(e) {
        const postId = e.currentTarget.dataset.id;
        wx.navigateTo({
          url: `/pages/postDetail/postDetail?id=${postId}`
        });
      }
  });
    